#ifndef MUSIC_H
#define MUSIC_H
#include <QString>
#include <QUrl>

class Music
{
public:
    Music();
    Music(const QUrl& url);

    void setMusicName(const QString &musicName);
    void setSingerName(const QString &singerName);
    void setAlbumName(const QString &albumName);
    void setDuration(const qint64 duration);
    void setMusicId(const QString &musicId);
    void setMusicUrl(const QUrl &musicUrl);
    void setIsLike(bool isLike);
    void setIsHistory(bool isHistory);

    QString getMusicName() const;
    QString getSingerName() const;
    QString getAlbumName() const;
    qint64 getDuration() const;
    QString getMusicId() const;
    QUrl getMusicUrl() const;
    bool getIsLike() const;
    bool getIsHistory() const;
    QString getLrcFilePath() const;

    // 写入数据
    void insertMusicToDB();
private:
    void parseMediaMetaData();  // 解析音乐数据
private:
    // 歌曲所有信息
    QString musicName;
    QString singerName;
    QString albumName;
    qint64 duration;
    QString musicId;  // 标记歌曲唯一性
    QUrl musicUrl;

    bool isLike;
    bool isHistory;
};

#endif // MUSIC_H
